Skip to content

docs: signpost non-npm publishers to package-types from quickstart - #1192

Merged
rdimitrov merged 1 commit into
modelcontextprotocol:mainfrom
AshwanthramKL:docs-pypi-signpost-in-quickstart
Apr 23, 2026
Merged

docs: signpost non-npm publishers to package-types from quickstart#1192
rdimitrov merged 1 commit into
modelcontextprotocol:mainfrom
AshwanthramKL:docs-pypi-signpost-in-quickstart

Conversation

@AshwanthramKL

Copy link
Copy Markdown
Contributor

What

Two targeted additions to docs/modelcontextprotocol-io/quickstart.mdx:

  1. A <Note> immediately after the tutorial's intro, telling PyPI / NuGet / OCI / MCPB publishers that the Step 1 ownership-verification mechanism differs for their package type and pointing them to Package Types before continuing.
  2. The troubleshooting row for "Registry validation failed for package" previously named only npm's mcpName property in package.json. It now names all three current mechanisms (npm → mcpName in package.json; PyPI / NuGet → mcp-name: <server-name> line in the package README; other types → link to Package Types).

+5 / -1 lines.

Why

The quickstart is the landing page for new publishers, but it's entirely TypeScript / npm-flavored — the Step 1 example shows npm's mcpName property and nothing else. The cross-reference to ./package-types only appears in the "Next Steps" footer, by which point a PyPI publisher has already gone through every step and hit a 400 Bad Request at mcp-publisher publish:

registry validation failed for package 0 (<pkg>): PyPI package '<pkg>' ownership validation failed. The server name 'io.github.<user>/<server>' must appear as 'mcp-name: io.github.<user>/<server>' in the package README

That specific error has tripped at least one other publisher (#531) and was what motivated this change. The ownership mechanism is correctly documented at ./package-types — the fix is purely to route people there before they publish, not to duplicate the content.

What this change is not

  • It does not propose changing the validation logic.
  • It does not duplicate content from package-types.mdx into the quickstart.
  • It does not add a separate PyPI-specific tutorial. The existing npm-flavored tutorial remains the canonical one; the note just tells non-npm readers which step is different.

Verification

  • Change is docs-only; no build or test impact.
  • Link target ./package-types is the same shape as the one already used in "Next Steps" of the same file.
  • Anchor #step-1-add-verification-information-to-the-package matches the existing heading's slug.

Related

The quickstart is entirely npm-oriented (TypeScript example, npm publish,
package.json mcpName marker). A publisher following it end-to-end for a
PyPI, NuGet, OCI, or MCPB package will hit a 400 at 'mcp-publisher
publish' because the ownership-verification step in Step 1 applies
npm's mechanism. The correct per-package-type mechanism is already
documented at ./package-types, but the quickstart doesn't link to it
until 'Next Steps' at the very end.

Two targeted changes so non-npm users don't have to debug it:

1. A <Note> at the top of the tutorial pointing them to Package Types
   before Step 1, with an explicit anchor to the verification step
   they'll need to adapt.

2. The 'Registry validation failed for package' troubleshooting row,
   which previously mentioned only npm's mcpName, now names the three
   current mechanisms (npm's mcpName, the README mcp-name marker for
   PyPI/NuGet, and a link to Package Types for the rest).

This is motivated by filed issue modelcontextprotocol#531 and by recent publisher reports
in the same spirit. No content is duplicated from package-types.mdx;
this is purely navigational.
@rdimitrov
rdimitrov merged commit dac0982 into modelcontextprotocol:main Apr 23, 2026
3 checks passed
@rdimitrov rdimitrov self-assigned this Apr 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants